{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Matplotlib图鉴——基础柱状图\n",
    "\n",
    "## 公众号：可视化图鉴"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.0.2\n",
      "0.23.4\n",
      "1.15.4\n"
     ]
    }
   ],
   "source": [
    "import matplotlib\n",
    "print(matplotlib.__version__) #查看Matplotlib版本\n",
    "import pandas as pd\n",
    "print(pd.__version__) #查看pandas版本\n",
    "import numpy as np\n",
    "print(np.__version__) #查看numpy版本\n",
    "import matplotlib.pyplot as plt \n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #设置中文"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意，代码在以下环境全部通过测试:\n",
    "- Python 3.7.1\n",
    "- Matplotlib == 3.0.2\n",
    "- pandas == 0.23.4\n",
    "- numpy == 1.15.4\n",
    "\n",
    "因版本不同，可能会有部分语法差异，如有报错，请先检查拼写及版本是否一致！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础柱状图——分组柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TZpES0sLe+65J8uWLWPixIkA7L333owcOZIlS5YwYsQIxo0bx9q1a5k9ezbnnHMOAHfffTfnnHMOjzzySOWvyVAiSVIPJk+ayNNLlvV6OXu0TOCpxUubWra1tZUbbriBMWPGMGzYMKZPn86UKVO44oorePnll3n++eeZPHnyBus8+eSTQDFC66xZszjllFPWz5s9ezYHHngg++677wYDsP3oRz/i4x//OC+88ALvfe97mTNnDttuu+2Wv9guGEokSerB00uWkZ/bsdfLiYs3LfhMmjSJpUuXcvbZZ3PGGWfwsY99jF//+tecdNJJjB07lhtvvJERI0ZssM7q1au5//77eemll7jtttsYMmQIRx99NKtWraKtrY2IWH9X4ddee43TTz+dq666isMPP5z999+fK6+8cn2rytZmKJEkqZ96+OGHmTp1KuPGjWPlypVcffXVLF26lIsvvpjTTz+9y3Wuv/56dt11Vx5//HEeeOAB5s6dy+LFixk6dOj6MNLuV7/6FWvXruX4448H4KCDDmL+/Pm99nq8+kaSpH5qypQp/PKXv+Shhx5i/PjxbLfddtx5551MnTqVk046iVWrVm2wfFtbGxdddBGXXHIJX/rSl/jQhz7Evvvu2+3299133/V9S9atW8f8+fPZe++9e+31GEokSeqnli9fzh133MF73vMejj/+eG699VYmTJhAa2srEcGxxx67QTCZNWsWY8aM4b777uO6667jzjvv5F3vele32992222ZMKG4c/Ff/uVfsm7dOmbOnNlrr8fTN5Ik9VNHHnkkzzzzDLvvvjvf+ta3uPDCCxk1ahQtLS2MGjWK1atXc8IJJ3D77bczZMgQpk+fzvnnn8/KlSs5+eSTWbt2LbfccgsAmdltORdccAHf//73uf3229lhhx167fUYSiRJ6qd+9rOf8cILL9Da2grAjBkzOO644zj11FN59NFHmTx5MvPnz1/fV+SDH/zg+nXPOuss7rnnHg444AAAXnnlFdra2t5Uxle+8hXmzp3Lj3/84/WtJr3F0zeSJPVTP//5z5k2bRoPPfTQBtMXLlzI9OnTueyyyzj44IPftN5NN93E5ZdfzmWXXbZ+2tVXX/2mUzPLli3j0ksv5aabbur1QAKGEkmS+qVrr72WGTNmcMstt6xv7VizZg0RwV577cUDDzzAVVddxVlnnbV+nYUL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\n",
      "text/plain": [
       "<Figure size 648x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.array(list(range(7)))\n",
    "y1 = [7,6,5,4,3,2,1]\n",
    "y2 = [6,2,3,3,1,1,0.5]\n",
    "\n",
    "width = 0.4\n",
    "x = x - 0.2\n",
    "\n",
    "plt.figure(figsize=(9,6))\n",
    "\n",
    "plt.bar(x, y1,  width=width, label='系列1',edgecolor = 'black',alpha = 0.7)\n",
    "plt.bar(x + width, y2, width=width, label='系列2',edgecolor = 'black')\n",
    "\n",
    "plt.xticks(x + 0.2,['周一', '周二', '周三', '周四', '周五', '周六', '周日'])\n",
    "\n",
    "\n",
    "plt.legend(loc=1,fontsize=13)  # 设置图例位置\n",
    "plt.ylabel('我是Y轴',fontsize=15)\n",
    "plt.xlabel('我是X轴',fontsize=15)\n",
    "plt.title(\"基础柱状图——分组柱状图\",fontsize=17)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础柱状图——分组柱状图——添加数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 459,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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FBYWct5557Fnzx52797Njh07aN26NYMGDaJnz57k5eXRt29f1q9fT/fu3QHo378/bdu2paioiDZt2tClSxdKS0uZPHkyEydOBOC1115j4sSJLFu2LPLXpKQkSbp0IyLSfPXp2Z2PitanvJzeed1Yu644qW3z8/N57rnnyMnJITs7m5EjRzJo0CAeeughtm/fzmeffUafPn2q7LN69WogmKF10qRJXHjhhRXrJk+ezPHHH8/AgQOr9Kf8+9//zne/+10+//xzzjrrLKZOnUqrVq32/8XWQElJEnbu3Mkrr7zCddddl+5QREQkDT4qWo//tGPKy7EpDUt8evbsSXFxMePHj+eyyy7jqquu4uOPP+b888+nc+fOzJgxgzZt2lTZZ+fOncyfP59t27bx4osvkpWVxamnnsqOHTsoKSnBzCruKrxr1y7GjBnDo48+yrBhwzjmmGN45JFHKlpVDjQlJUl48cUXadmyJcOHD093KCIiIhXef/99Bg8eTJcuXdi6dSuPP/44xcXFTJkyhTFjxtS4z7Rp0zj00EP54IMPWLBgAdOnT2fdunW0aNGiIhkp969//YvS0lJGjRoFwAknnMCSJUtS9no0+iYJM2bM4LTTTktZc5WIiEhjDBo0iPfee49FixaRm5tLu3btePXVVxk8eDDnn38+O3bsqLJ9SUkJN998M7fccgu33347l1xyCQMHDqz1+AMHDqzoW1JWVsaSJUvo379/yl6PWkqSMHXq1HSHICIiso8NGzbw8ssvc++993LttdcyYcIE9u7dS4cOHTAzzjjjDGbPnl0xv9akSZPIycnh7bffpm3btixbtoyTTz651uO3atWKbt2COxf/+Mc/pqysjAkTJqTs9SgpERERyVDDhw/nk08+oVevXjz88MPcdNNNdOjQgby8PDp06MDOnTs555xzeOmll8jKymLkyJFce+21bN26lQsuuIDS0lJeeOEFANy91nJuuOEGnnrqKV566SUOOuiglL2eyJISMxsB/Dx82hv4sbs/GlX5IiIiTc0777zD559/Tn5+PgBjx47lzDPP5OKLL2bFihX06dOHJUuWVPQVueiiiyr2HTduHPPmzeO4444D4IsvvqCkpGSfMn7zm98wffp0Xn/99YpWk1SJrE+Ju89x92HuPgxYCrwTVdkiIiJN0eLFiykoKGDRokVVlq9Zs4aRI0fywAMPcOKJJ+6z38yZM3nwwQd54IEHKpY9/vjj+1yaWb9+PXfeeSczZ85MeUICaejoambtgAHuvjTqskVERJqKZ555hrFjx/LCCy9UtHbs2bMHM6Nfv34sWLCARx99lHHjxlXss2bNGq688krGjx/P9OnTGTBgQJVjrlq1itmzZ9OiRQsAnn76aTZt2sRxxx1Hbm4uubm5nHnmmSl7TenoU3Ia8FL1hWY2AZgAVDRDpcIFl15GYQQT4ADk53XjmScfi6QsERFJnd553Ro8h0hjy0nWp59+yqxZszjssMPYtGkTp5xyCoWFhfzoRz8CoHv37syZM4elSyvbADp16sTBBx/M0qVLa7zj/caNG3nuueeYPHkyEHSMnTRp0n6+quRZXR1bUlKg2YPAs+4+s7ZtCgoKfMGCBSkp/4SvncbgK25LybGrW/rIDcx/9R+RlCUiIvtv+fLlHH744ekOo1HeeOMNjjzyyCqzsUattvozs4XuXlDf/pG2lFhwR6ARQHRpl4iISDMwdOjQdIew36LuU3ICsMzdd0VcroiIiMRcpC0l7v42cG6UZYqIiEhm0DTzIiIiCcrKytIdQkY6EPWmpERERCTUvn17ioqKKCkpqXOGU6nk7pSUlFBUVET79u3361iaZl5ERCTUs2dPNm3axEcffURpaWm6w8kY2dnZdOrUqcZhxg06zgGKR0REJONlZWVxyCGHcMghh6Q7lGZJl29EREQkFpSUiIiISCwoKREREZFYUFIiIiIisaCkRERERGJBSYmIiIjEgpISERERiQUlJSIiIhILSkpEREQkFpSUiIiISCwoKREREZFYUFIiIiIisaCkRERERGJBSYmIiIjEgpISERERiQUlJSIiIhILSkpiYs+ePUycOJGDDjqIww8/nDfffDPdIYmIiERKSUlM3HnnnaxatYpFixZxySWXMHr06HSHJCIiEqnsdAcggYceeog///nPHHbYYVx33XUcccQR7N27lxYtWqQ7NBERkUiopSQG1q9fz+rVq3nrrbfIycnhxBNPpG/fvkpIRESkWVFSEgPFxcVkZWXx1ltvsXjxYo499lhGjx5NWVlZukMTERGJjJKSGPjiiy8oKyvjxhtvpE+fPkyaNImVK1eyZs2adIcmIiISGSUlMdCpUycAOnfuDECXLl0A2LRpU9piEhERiZqSkhgYMGAArVq1YtWq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\n",
      "text/plain": [
       "<Figure size 648x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.array(list(range(7)))\n",
    "y1 = [7,5,5,4,3,2,1]\n",
    "y2 = [6,2,3,3,1,1,0.5]\n",
    "\n",
    "width = 0.4\n",
    "x = x - 0.2\n",
    "\n",
    "plt.figure(figsize=(9,6))\n",
    "\n",
    "plt.bar(x, y1,  width=width, label='系列1',edgecolor = 'black',alpha = 0.7)\n",
    "plt.bar(x + width, y2, width=width, label='系列2',edgecolor = 'black')\n",
    "\n",
    "plt.xticks(x + 0.2,['周一', '周二', '周三', '周四', '周五', '周六', '周日'])\n",
    "\n",
    "plt.ylim(0, 8)\n",
    "#使用plt.text添加数值\n",
    "for a, b in zip(x,y1):\n",
    "    plt.text(a, b+0.1, b, ha='center', va='bottom',fontsize = 14)\n",
    "    \n",
    "for a,b in zip(x,y2):\n",
    "    plt.text(a+width, b+0.1, b, ha='center', va='bottom',fontsize = 14)\n",
    "\n",
    "plt.legend(loc=1,fontsize=13)  # 设置图例位置\n",
    "plt.ylabel('我是Y轴',fontsize=15)\n",
    "plt.xlabel('我是X轴',fontsize=15)\n",
    "plt.title(\"基础柱状图——分组柱状图\",fontsize=17)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础柱状图——分组柱状图——水平、展示数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 460,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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e7RPSUkJAwYMID09nS5dupCens67777Lueeey4ABAzj88MM59dRT2XvvvdmxYwcZGRl89tlnpKamctNNN7FixQoef/xxgKqi6NVXX2XYsGF07NiRvffee5fH++KLL/j5z3/O7bffzpAhQ5rsuddGBY2IiEgjfVrwJYeef0vCHm/V/dfs8T577bUXX34ZFF3uzi9+8QsyMjK4+uqrOfDAA1m0aBEHHHAAOTk5VfukpgZlwptvvslBBx1UtTwtLY3NmzdzwgknsGnTJtq1a1e1LcCFF17InDlzGvr0GkRjaERERNqIiooK/vGPfzBmzBh69+7NK6+8wn777cfFF1/Mb3/7W1599dVq++zYsYOlS5eyYsUKpkyZwpQpU1i6dGnVadY1DZC+7bbb+Pjjj5v9+cRSQSMiItKGnHPOOaxevZpFixbRsWNHDjnkEEaMGMGbb77JWWedVW37Bx54AHfnoosu4sgjj2TZsmV8/vnnux3M2717d/r379+Mz6K6VtfltOGjjxk95ISoY5DVrzezFy6IOoaIiEiVdu3asXLlSvLz83nwwQe54IILmDBhAunp6cydO5dZs2YxZ84cDjzwQAC2b9/OrbfeyiWXXMLZZ58NwG9+8xsGDhwY5dOoUasraMpKS3nqoF9FHYPRa+6IOoKIiMguzjzzTB599FHS0tI49thjWbhwIfPnz+fbb7+lvLycrVu3cswxxzBjxgzOPPNMJk+eTElJCT179uTcc8/lxhtvpKCggMMPPzzqp1JNqytoREREpGZXXXUVl112GVlZWXTu3JlPPvmEs846izVr1pCRkQHAsmXLWLNmDQCnnHIKZ5xxBgMHDmTBggUMHz6c008/ndTUVNw9yqdSjQoaERGRNmLw4MGMHTuWoUOHcvnll7N582bMjIyMDO68806WL1/O3LlzOf744wH4yU9+UrXvvHnzyM3NZfLkyQBs3boVgLKysoQ/j5poUHBEHnzwQXr37k2vXr3485//XOt27k5qairdu3evum3ZsiWBSUVEpDXYuXMnEyZMoKCggPPPP7/a+ry8PFJTUxk2bBgffvjhLutKSkrIy8vj4osvZujQoUBwdtOHH35I586dE5K/LipoIlBUVMTFF1/M3/72N1588UUmT57M119/XeO233zzDf369aOwsLDq1hSXWRcRkbYlLy+PwsJC8vPzyczM5Nln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\n",
      "text/plain": [
       "<Figure size 648x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.array([1,2,3,4,5,6,7])\n",
    "y1 = [7,5,3,4,3,2,1]\n",
    "y2 = [6,2,6,3,1,1,0.5]\n",
    "names = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']\n",
    "width = 0.4\n",
    "\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(9,6))\n",
    "ax.barh(x, y1, width, label='系列1',edgecolor = 'black',alpha = 0.7)\n",
    "ax.barh(x + width, y2, width, label='系列2',edgecolor = 'black',color = 'deeppink',alpha = 0.7)\n",
    "\n",
    "ax.set(yticks=x + 0.2, yticklabels=names, ylim=[0.5, 8])\n",
    "\n",
    "ax.set_title(\"基础柱状图——分组柱状图——水平\",fontsize = 16)\n",
    "ax.set_xlabel('我是X轴',fontsize=15)\n",
    "ax.set_ylabel('我是Y轴',fontsize=15)\n",
    "ax.legend(fontsize = 14)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "for i in range(len(x)):\n",
    "    \n",
    "    plt.text(y1[i]+0.1,x[i]-0.1,y1[i],fontsize = 12)\n",
    "    \n",
    "    plt.text(y2[i]+0.1,x[i]+0.3,y2[i],fontsize = 12)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础柱状图—分组柱状图—官方示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 229,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "men_means, men_std = (20, 35, 30, 35, 27), (2, 3, 4, 1, 2)\n",
    "women_means, women_std = (25, 32, 34, 20, 25), (3, 5, 2, 3, 3)\n",
    "\n",
    "ind = np.arange(len(men_means))  # the x locations for the groups\n",
    "width = 0.35  # the width of the bars\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "rects1 = ax.bar(ind - width/2, men_means, width, yerr=men_std,\n",
    "                color='SkyBlue', label='Men')\n",
    "rects2 = ax.bar(ind + width/2, women_means, width, yerr=women_std,\n",
    "                color='IndianRed', label='Women')\n",
    "\n",
    "# Add some text for labels, title and custom x-axis tick labels, etc.\n",
    "ax.set_ylabel('Scores')\n",
    "ax.set_title('Scores by group and gender')\n",
    "ax.set_xticks(ind)\n",
    "ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))\n",
    "ax.legend()\n",
    "\n",
    "\n",
    "def autolabel(rects, xpos='center'):\n",
    "    \"\"\"\n",
    "    Attach a text label above each bar in *rects*, displaying its height.\n",
    "\n",
    "    *xpos* indicates which side to place the text w.r.t. the center of\n",
    "    the bar. It can be one of the following {'center', 'right', 'left'}.\n",
    "    \"\"\"\n",
    "\n",
    "    xpos = xpos.lower()  # normalize the case of the parameter\n",
    "    ha = {'center': 'center', 'right': 'left', 'left': 'right'}\n",
    "    offset = {'center': 0.5, 'right': 0.57, 'left': 0.43}  # x_txt = x + w*off\n",
    "\n",
    "    for rect in rects:\n",
    "        height = rect.get_height()\n",
    "        ax.text(rect.get_x() + rect.get_width()*offset[xpos], 1.01*height,\n",
    "                '{}'.format(height), ha=ha[xpos], va='bottom')\n",
    "\n",
    "\n",
    "autolabel(rects1, \"left\")\n",
    "autolabel(rects2, \"right\")\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
